home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1995 October / EnigmA AMIGA RUN 01 (1995)(G.R. Edizioni)(IT)[!][issue 1995-10][Aminet 7].iso / Aminet / comm / term / XPRZ35R_SRC.lha / callbacks.a next >
Text File  |  1994-11-15  |  3KB  |  202 lines

  1. ; callbacks.a
  2. ; Glue to call XPR callback functions in comm program from inside XPR library.
  3. ; This protects our registers from potential bugs in the comm program
  4. ; which might change them in unexpected ways.  The prototypes in xprzmodem.h
  5. ; put all arguments into the registers required by the XPR spec, so we don't
  6. ; have to move anything around here.
  7.  
  8.     INCLUDE    "exec/types.i"
  9.  
  10.     ; Entry points
  11.     XDEF    _xpr_fopen
  12.     XDEF    _xpr_fclose
  13.     XDEF    _xpr_fread
  14.     XDEF    _xpr_fwrite
  15.     XDEF    _xpr_sread
  16.     XDEF    _xpr_swrite
  17.     XDEF    _xpr_sflush
  18.     XDEF    _xpr_update
  19.     XDEF    _xpr_chkabort
  20.     XDEF    _xpr_chkmisc
  21.     XDEF    _xpr_gets
  22.     XDEF    _xpr_setserial
  23.     XDEF    _xpr_ffirst
  24.     XDEF    _xpr_fnext
  25.     XDEF    _xpr_finfo
  26.     XDEF    _xpr_fseek
  27.     XDEF    _xpr_options
  28.     XDEF    _xpr_unlink
  29.     XDEF    _xpr_squery
  30.     XDEF    _xpr_getptr
  31.  
  32.     ; XPR interface structure
  33.     STRUCTURE XPR_IO,0
  34.     APTR    XPR_FILENAME
  35.     APTR    XPR_FOPEN
  36.     APTR    XPR_FCLOSE
  37.     APTR    XPR_FREAD
  38.     APTR    XPR_FWRITE
  39.     APTR    XPR_SREAD
  40.     APTR    XPR_SWRITE
  41.     APTR    XPR_SFLUSH
  42.     APTR    XPR_UPDATE
  43.     APTR    XPR_CHKABORT
  44.     APTR    XPR_CHKMISC
  45.     APTR    XPR_GETS
  46.     APTR    XPR_SETSERIAL
  47.     APTR    XPR_FFIRST
  48.     APTR    XPR_FNEXT
  49.     APTR    XPR_FINFO
  50.     APTR    XPR_FSEEK
  51.     LONG    XPR_EXTENSION
  52.     APTR    XPR_DATA
  53.     APTR    XPR_OPTIONS
  54.     APTR    XPR_UNLINK
  55.     APTR    XPR_SQUERY
  56.     APTR    XPR_GETPTR
  57.     LABEL    XPR_IO_SIZEOF
  58.  
  59.     SECTION    text,code
  60.  
  61. _xpr_fopen:
  62.     movem.l    d2-d7/a2-a6,-(sp)
  63.     movea.l    XPR_FOPEN(a3),a6
  64.     jsr    (a6)
  65.     movem.l    (sp)+,d2-d7/a2-a6
  66.     rts
  67.  
  68. _xpr_fclose:
  69.     movem.l    d2-d7/a2-a6,-(sp)
  70.     movea.l    XPR_FCLOSE(a3),a6
  71.     jsr    (a6)
  72.     movem.l    (sp)+,d2-d7/a2-a6
  73.     rts
  74.  
  75. _xpr_fread:
  76.     movem.l    d2-d7/a2-a6,-(sp)
  77.     movea.l    XPR_FREAD(a3),a6
  78.     jsr    (a6)
  79.     movem.l    (sp)+,d2-d7/a2-a6
  80.     rts
  81.  
  82. _xpr_fwrite:
  83.     movem.l    d2-d7/a2-a6,-(sp)
  84.     movea.l    XPR_FWRITE(a3),a6
  85.     jsr    (a6)
  86.     movem.l    (sp)+,d2-d7/a2-a6
  87.     rts
  88.  
  89. _xpr_sread:
  90.     movem.l    d2-d7/a2-a6,-(sp)
  91.     movea.l    XPR_SREAD(a3),a6
  92.     jsr    (a6)
  93.     movem.l    (sp)+,d2-d7/a2-a6
  94.     rts
  95.  
  96. _xpr_swrite:
  97.     movem.l    d2-d7/a2-a6,-(sp)
  98.     movea.l    XPR_SWRITE(a3),a6
  99.     jsr    (a6)
  100.     movem.l    (sp)+,d2-d7/a2-a6
  101.     rts
  102.  
  103. _xpr_sflush:
  104.     movem.l    d2-d7/a2-a6,-(sp)
  105.     movea.l    XPR_SFLUSH(a3),a6
  106.     jsr    (a6)
  107.     movem.l    (sp)+,d2-d7/a2-a6
  108.     rts
  109.  
  110. _xpr_update:
  111.     movem.l    d2-d7/a2-a6,-(sp)
  112.     movea.l    XPR_UPDATE(a3),a6
  113.     jsr    (a6)
  114.     movem.l    (sp)+,d2-d7/a2-a6
  115.     rts
  116.  
  117. _xpr_chkabort:
  118.     movem.l    d2-d7/a2-a6,-(sp)
  119.     movea.l    XPR_CHKABORT(a3),a6
  120.     jsr    (a6)
  121.     movem.l    (sp)+,d2-d7/a2-a6
  122.     rts
  123.  
  124. _xpr_chkmisc:
  125.     movem.l    d2-d7/a2-a6,-(sp)
  126.     movea.l    XPR_CHKMISC(a3),a6
  127.     jsr    (a6)
  128.     movem.l    (sp)+,d2-d7/a2-a6
  129.     rts
  130.  
  131. _xpr_gets:
  132.     movem.l    d2-d7/a2-a6,-(sp)
  133.     movea.l    XPR_GETS(a3),a6
  134.     jsr    (a6)
  135.     movem.l    (sp)+,d2-d7/a2-a6
  136.     rts
  137.  
  138. _xpr_setserial:
  139.     movem.l    d2-d7/a2-a6,-(sp)
  140.     movea.l    XPR_SETSERIAL(a3),a6
  141.     jsr    (a6)
  142.     movem.l    (sp)+,d2-d7/a2-a6
  143.     rts
  144.  
  145. _xpr_ffirst:
  146.     movem.l    d2-d7/a2-a6,-(sp)
  147.     movea.l    XPR_FFIRST(a3),a6
  148.     jsr    (a6)
  149.     movem.l    (sp)+,d2-d7/a2-a6
  150.     rts
  151.  
  152. _xpr_fnext:
  153.     movem.l    d2-d7/a2-a6,-(sp)
  154.     movea.l    XPR_FNEXT(a3),a6
  155.     jsr    (a6)
  156.     movem.l    (sp)+,d2-d7/a2-a6
  157.     rts
  158.  
  159. _xpr_finfo:
  160.     movem.l    d2-d7/a2-a6,-(sp)
  161.     movea.l    XPR_FINFO(a3),a6
  162.     jsr    (a6)
  163.     movem.l    (sp)+,d2-d7/a2-a6
  164.     rts
  165.  
  166. _xpr_fseek:
  167.     movem.l    d2-d7/a2-a6,-(sp)
  168.     movea.l    XPR_FSEEK(a3),a6
  169.     jsr    (a6)
  170.     movem.l    (sp)+,d2-d7/a2-a6
  171.     rts
  172.  
  173. _xpr_options:
  174.     movem.l    d2-d7/a2-a6,-(sp)
  175.     movea.l    XPR_OPTIONS(a3),a6
  176.     jsr    (a6)
  177.     movem.l    (sp)+,d2-d7/a2-a6
  178.     rts
  179.  
  180. _xpr_unlink:
  181.     movem.l    d2-d7/a2-a6,-(sp)
  182.     movea.l    XPR_UNLINK(a3),a6
  183.     jsr    (a6)
  184.     movem.l    (sp)+,d2-d7/a2-a6
  185.     rts
  186.  
  187. _xpr_squery:
  188.     movem.l    d2-d7/a2-a6,-(sp)
  189.     movea.l    XPR_SQUERY(a3),a6
  190.     jsr    (a6)
  191.     movem.l    (sp)+,d2-d7/a2-a6
  192.     rts
  193.  
  194. _xpr_getptr:
  195.     movem.l    d2-d7/a2-a6,-(sp)
  196.     movea.l    XPR_GETPTR(a3),a6
  197.     jsr    (a6)
  198.     movem.l    (sp)+,d2-d7/a2-a6
  199.     rts
  200.  
  201.     END
  202.